package com.DAL;

import java.sql.*;

/**
 * 本类专门负责数据库的连接与关闭的操作，在实例化本类对象时就意味着要进行数据库的开发
 * 所以在本类的构造方法里要进行数据库驱动加载与数据库连接取得
 *
 * @author geekcc
 */
public class DatabaseConnection {
    private static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
    private static final String DBURL = "jdbc:mysql://localhost:3306/property";
    private static final String DBUSERNAME = "root";
    private static final String DBPASSWORD = "";

    //    private Connection conn = null;
    static {
        try {
            Class.forName(DBDRIVER);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
/**
 * 在构造方法里面为conn对象进行实例化，可以直接取得数据库的连接对象
 * 由于所有的操作都是基于数据库完成的，如果数据库无法去的连接，也就意味着所有的操作都可以停止了
 */
    /**
     * 取得一个数据库的连接对象
     *
     * @return Connection实例化对象
     */
    public static Connection getConnection() {
        try {
            return DriverManager.getConnection(DBURL, DBUSERNAME, DBPASSWORD);
        } catch (SQLException e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 负责数据库的关闭
     */
    public static void close(ResultSet rs, Statement stmt, Connection conn) {
        try {
            if (rs != null) rs.close();
            if (stmt != null) stmt.close();
            if (conn != null) conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
